HTTP REQUEST SMUGGLING 

HTTP REQUEST SMUGGLING Nedir Nasıl Test Edilir?

Bir web sitesinde http paketlerini sıklıkla görmekteyiz. Bir http paketi sunucuya gider ve o http paketinden yanıt gelene kadar herhangi bi http paketi gönderemeyiz (http 2 yapılındırılması farklı olduğundan http 1 veya 1.1 için geçerlidir.).  Biz bu http paketini yollarken paketin içerisine bir http paket daha eklediğimizde ikinci eklediğimiz http paketi bir başka istek yapan kullanıcıya gönderilmesine neden olur. Yani yaptığımız http request smuggling saldırısı ile siteye istek yapan diğer kullanıcıların isteklerini manipüle edip kendi eklediğimiz isteği almasını sağlayabiliyoruz. Örnek istek:

POST /search HTTP/1.1

Host: zafiyetlisite.com

Content-Type: application/x-www-form-urlencoded

Content-Length: 49

Transfer-Encoding: chunked

 

e

q=smuggling&x=

0

 

GET /404 HTTP/1.1

Foo: x

 

Bunun yanı sıra tespit aşamasında isteğe karşı savunmasız bir mekanizma varsa aşağıdaki gibi paket göndermemiz paketin geç dönmesiyle tespit yapmış olacağız.

 

 

POST / HTTP/1.1

Host: zafiyetlisite.com

Transfer-Encoding: chunked

Content-Length: 4

 

1

A

X

 

Şimdi PortSwigger üzerinde birkaç labaratuvar çözelim

image

Bu labaratuvarda http istek kaçırarak bir sonraki paketin GPOST şeklinde kullanıldığını görmemizi istiyor.

image

Şimdi Access the lab dedikten sonra ana sayfa yüklenirken   gelen bu  paket üzerinde oynamalar yapabiliriz.

image

Şekildeki gibi bu paketi 2 kere yolladığımızda karşımıza GPOST ile ilgili bir bilgi çıktı ilk labaratuvarı bu şekilde tamamlamış olduk. Burada önemli olan 0 girmemiz paketin sonlandığını düşünmesini sağlamasıdır. 

image

 

Bir sonraki labaratuvarı inceleyelim:

image

Burada sunucunun sadece GET ve POST methodlarını kabul ettiğini bizim de http paket kaçırarak bir sonraki methodun GPOST kullanıyormuş gibi olduğunu göstermemiz gerekiyor.

image

 

Biz bu paketi manipüle ederek bir http paketi daha yollamaya çalışacağız.

 

image

Bu paketi 2 kere yolladığımızda aynı şekilde hata geliyor ve http request smuggling zafiyetini tespit etmiş oluyoruz.

image

 

 

Peki Gerçek Web Sitelerinde de Laboratuvarlardaki Gibi Çıkar Mı?

Evet bu mümkün bu güvenlik açığını çeşitli şekillerde kullanabiliriz örneğin xss veya oturum çalma gibi çeşitli zafiyetlere sonuç verebilir oldukça ciddi bir açık.

 

 

 

Aşağıda Birkaç Http Request Smuggling Örnek Raporlarını Bulabilirsiniz:

https://hackerone.com/reports/758445

https://hackerone.com/reports/498052

https://hackerone.com/reports/922597